#include "fxcc/imgui/Editor.h"
#include "fxcc/core/graph/common/Shapes.h"

using namespace fxcc::graph::common;
using namespace fxcc::imgui;

template <>
bool Editor::Edit<BoxShape>(const std::string& label, BoxShape& inst)
{
    ImGui::Text(label.c_str());
    EditInst<glm::vec3>("m_HalfExtends", inst.m_HalfExtends);

    return false;
}

template <>
bool Editor::Edit<CapsuleShape>(const std::string& label, CapsuleShape& inst)
{
    ImGui::Text(label.c_str());
    EditInst<float>("m_Radius", inst.m_Radius);
    EditInst<float>("m_Height", inst.m_Height);
    return false;
}


template <>
bool Editor::Edit<SphereShape>(const std::string& label, SphereShape& inst)
{
    ImGui::Text(label.c_str());
    EditInst<float>("m_Radius", inst.m_Radius);

    return false;
}

template <>
bool Editor::Edit<PlaneShape>(const std::string& label, PlaneShape& inst)
{
    ImGui::Text(label.c_str());
    return false;
}